package com.miniapp.core.service.impl;

import java.util.List;

import com.miniapp.common.enums.DeleteFlag;
import com.miniapp.common.utils.DateUtils;
import com.miniapp.common.utils.SecurityUtils;
import com.miniapp.core.domain.TMiniAgentGen;
import com.miniapp.core.mapper.TMiniAgentGenMapper;
import com.miniapp.core.service.ITMiniAgentGenService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


/**
 * 代理人功能Service业务层处理
 *
 * @author miniapp
 * @date 2024-12-01
 */
@Service
public class TMiniAgentGenServiceImpl implements ITMiniAgentGenService
{
    @Autowired
    private TMiniAgentGenMapper tMiniAgentGenMapper;

    /**
     * 查询代理人功能
     *
     * @param id 代理人功能主键
     * @return 代理人功能
     */
    @Override
    public TMiniAgentGen selectTMiniAgentGenById(Long id)
    {
        return tMiniAgentGenMapper.selectTMiniAgentGenById(id);
    }

    /**
     * 查询代理人功能列表
     *
     * @param tMiniAgentGen 代理人功能
     * @return 代理人功能
     */
    @Override
    public List<TMiniAgentGen> selectTMiniAgentGenList(TMiniAgentGen tMiniAgentGen)
    {
        return tMiniAgentGenMapper.selectTMiniAgentGenList(tMiniAgentGen);
    }

    /**
     * 新增代理人功能
     *
     * @param tMiniAgentGen 代理人功能
     * @return 结果
     */
    @Override
    public int insertTMiniAgentGen(TMiniAgentGen tMiniAgentGen)
    {
        String agentPhone = tMiniAgentGen.getAgentPhone();

        TMiniAgentGen tMiniAgentGenQuery = new TMiniAgentGen();
        tMiniAgentGenQuery.setAgentPhone(agentPhone);
        List<TMiniAgentGen> tMiniAgentGenList = tMiniAgentGenMapper.selectTMiniAgentGenList(tMiniAgentGenQuery);
        if(CollectionUtils.isNotEmpty(tMiniAgentGenList)){
            throw new RuntimeException("手机号已存在，不允许提交");
        }

        Long userId = SecurityUtils.getUserId();
        tMiniAgentGen.setCreateTime(DateUtils.getNowDate());
        tMiniAgentGen.setUpdateTime(DateUtils.getNowDate());
        tMiniAgentGen.setUpdateUserId(userId);
        return tMiniAgentGenMapper.insertTMiniAgentGen(tMiniAgentGen);
    }

    /**
     * 修改代理人功能
     *
     * @param tMiniAgentGen 代理人功能
     * @return 结果
     */
    @Override
    public int updateTMiniAgentGen(TMiniAgentGen tMiniAgentGen)
    {
        //查询旧手机号
        Long id = tMiniAgentGen.getId();
        TMiniAgentGen oldMiniAgentGen = tMiniAgentGenMapper.selectTMiniAgentGenById(id);
        String oldAgentPhone = oldMiniAgentGen.getAgentPhone();
        //新手机号
        String newAgentPhone = tMiniAgentGen.getAgentPhone();
        //旧手机号 不等 于新手机号
        if(!oldAgentPhone.equals(newAgentPhone)){
            //查询新手机号存在抛异常
            TMiniAgentGen tMiniAgentGenQuery = new TMiniAgentGen();
            tMiniAgentGenQuery.setAgentPhone(newAgentPhone);
            List<TMiniAgentGen> tMiniAgentGenList = tMiniAgentGenMapper.selectTMiniAgentGenList(tMiniAgentGenQuery);
            if(CollectionUtils.isNotEmpty(tMiniAgentGenList)){
                throw new RuntimeException("手机号已存在，不允许提交");
            }

        }


        tMiniAgentGen.setUpdateTime(DateUtils.getNowDate());
        Long userId = SecurityUtils.getUserId();
        tMiniAgentGen.setUpdateUserId(userId);
        return tMiniAgentGenMapper.updateTMiniAgentGen(tMiniAgentGen);
    }

    /**
     * 批量删除代理人功能
     *
     * @param ids 需要删除的代理人功能主键
     * @return 结果
     */
    @Override
    public int deleteTMiniAgentGenByIds(Long[] ids)
    {
        for (Long id : ids) {
            deleteTMiniAgentGenById(id);
        }
        return ids.length;
    }

    /**
     * 删除代理人功能信息
     *
     * @param id 代理人功能主键
     * @return 结果
     */
    @Override
    public int deleteTMiniAgentGenById(Long id)
    {
        TMiniAgentGen tMiniAgentGen = new TMiniAgentGen();
        tMiniAgentGen.setId(id);
        tMiniAgentGen.setDelFlag(DeleteFlag.DELETED.getCode());
        return tMiniAgentGenMapper.updateTMiniAgentGen(tMiniAgentGen);

    }
}













